<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>RaftLib: frame_resolution Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">RaftLib
   &#160;<span id="projectnumber">0.3a</span>
   </div>
   <div id="projectbrief">C++ Stream Processing Template Library</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.9.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="classframe__resolution-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">frame_resolution Class Reference</div>  </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
Collaboration diagram for frame_resolution:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classframe__resolution__coll__graph.svg" width="178" height="166"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a91d9a162aa93265c52059b72a189ca4c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classframe__resolution.html#a91d9a162aa93265c52059b72a189ca4c">frame_resolution</a> ()</td></tr>
<tr class="separator:a91d9a162aa93265c52059b72a189ca4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e526f4205925029f371b632a5606f4f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8e526f4205925029f371b632a5606f4f"></a>
sclock_t&#160;</td><td class="memItemRight" valign="bottom"><b>getFrameWidth</b> ()</td></tr>
<tr class="separator:a8e526f4205925029f371b632a5606f4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a98e6841e5ebe4b23198858778f60bb45"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classframe__resolution.html#a98e6841e5ebe4b23198858778f60bb45">setBlockedStatus</a> (<a class="el" href="classframe__resolution.html">frame_resolution</a> &amp;frame, Direction dir, const bool blocked=false)</td></tr>
<tr class="separator:a98e6841e5ebe4b23198858778f60bb45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae94ce8782eab4147f09421c3724c233e"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classframe__resolution.html#ae94ce8782eab4147f09421c3724c233e">wasBlocked</a> (<a class="el" href="classframe__resolution.html">frame_resolution</a> &amp;frame)</td></tr>
<tr class="separator:ae94ce8782eab4147f09421c3724c233e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a02c151b13bab07dbe90bf52e9881a486"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classframe__resolution.html#a02c151b13bab07dbe90bf52e9881a486">updateResolution</a> (<a class="el" href="classframe__resolution.html">frame_resolution</a> &amp;frame, sclock_t previous_loop_start, bool &amp;blocked)</td></tr>
<tr class="separator:a02c151b13bab07dbe90bf52e9881a486"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4ef3e87dbb6c8eec2500e8630026107"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classframe__resolution.html#aa4ef3e87dbb6c8eec2500e8630026107">acceptEntry</a> (<a class="el" href="classframe__resolution.html">frame_resolution</a> &amp;frame, sclock_t realized_frame_time)</td></tr>
<tr class="separator:aa4ef3e87dbb6c8eec2500e8630026107"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21119895c33259630fe3e0d8527331eb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a21119895c33259630fe3e0d8527331eb"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><b>waitForInterval</b> (<a class="el" href="classframe__resolution.html">frame_resolution</a> &amp;frame)</td></tr>
<tr class="separator:a21119895c33259630fe3e0d8527331eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:a084a0c4dccbccc4864488fe82b58121f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a084a0c4dccbccc4864488fe82b58121f"></a>
sclock_t&#160;</td><td class="memItemRight" valign="bottom"><b>curr_frame_width</b></td></tr>
<tr class="separator:a084a0c4dccbccc4864488fe82b58121f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89e57eb800605489a68e5508bdb8ae1a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a89e57eb800605489a68e5508bdb8ae1a"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>upper</b></td></tr>
<tr class="separator:a89e57eb800605489a68e5508bdb8ae1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79ab4db2fce07f2a6c19b15a93b77d46"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a79ab4db2fce07f2a6c19b15a93b77d46"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>lower</b></td></tr>
<tr class="separator:a79ab4db2fce07f2a6c19b15a93b77d46"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a91d9a162aa93265c52059b72a189ca4c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">frame_resolution::frame_resolution </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>resolution.cpp - </p><dl class="section author"><dt>Author</dt><dd>: Jonathan Beard </dd></dl>
<dl class="section version"><dt>Version</dt><dd>: Wed Aug 20 12:53:16 2014</dd></dl>
<p>Copyright 2014 Jonathan Beard</p>
<p>Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at:</p>
<p><a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a></p>
<p>Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. </p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classframe__resolution_a91d9a162aa93265c52059b72a189ca4c_cgraph.svg" width="526" height="54"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="aa4ef3e87dbb6c8eec2500e8630026107"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool frame_resolution::acceptEntry </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classframe__resolution.html">frame_resolution</a> &amp;&#160;</td>
          <td class="paramname"><em>frame</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">sclock_t&#160;</td>
          <td class="paramname"><em>realized_frame_time</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>acceptEntry - accept the current frame in frame if the realized interval for this observation is within the expected range. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">frame</td><td>- <a class="el" href="classframe__resolution.html">frame_resolution</a> </td></tr>
    <tr><td class="paramname">realized_frame_time</td><td>- actual current time </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>bool if acceptable </dd></dl>

</div>
</div>
<a class="anchor" id="a98e6841e5ebe4b23198858778f60bb45"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void frame_resolution::setBlockedStatus </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classframe__resolution.html">frame_resolution</a> &amp;&#160;</td>
          <td class="paramname"><em>frame</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Direction&#160;</td>
          <td class="paramname"><em>dir</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const bool&#160;</td>
          <td class="paramname"><em>blocked</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>setBlockedStatus - sets the blocked status, which will be used to optimize the interval for data collection. Direction is needed so we know which side (the arrival process or service process) is actually blocked which might be used seperately in the future. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">frame</td><td>- current <a class="el" href="classframe__resolution.html">frame_resolution</a> object </td></tr>
    <tr><td class="paramname">dir</td><td>- direction of current stat selection </td></tr>
    <tr><td class="paramname">blocked</td><td>- true if blocked, false if not </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a02c151b13bab07dbe90bf52e9881a486"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool frame_resolution::updateResolution </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classframe__resolution.html">frame_resolution</a> &amp;&#160;</td>
          <td class="paramname"><em>frame</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">sclock_t&#160;</td>
          <td class="paramname"><em>previous_loop_start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool &amp;&#160;</td>
          <td class="paramname"><em>blocked</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>updateResolution - function gets called at each iteration of the monitor loop until convergence is reached at which point this function returns true. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">frame</td><td>- <a class="el" href="classframe__resolution.html">frame_resolution</a> struct </td></tr>
    <tr><td class="paramname">realized_frame_time</td><td>- actual time to go through loop </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>bool </dd></dl>
<p>note: frame.curr_frame_width always &gt; 0 </p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classframe__resolution_a02c151b13bab07dbe90bf52e9881a486_cgraph.svg" width="534" height="71"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
</p>

</div>
</div>
<a class="anchor" id="ae94ce8782eab4147f09421c3724c233e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static bool frame_resolution::wasBlocked </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classframe__resolution.html">frame_resolution</a> &amp;&#160;</td>
          <td class="paramname"><em>frame</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>wasBlocked - returns true if at any time in the previous NUMFRAMES the queue was blocked. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">frame</td><td>- frame resolution reference. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>bool - true if the queue was blocked in NUMFRAMES </dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="resolution_8hpp_source.html">resolution.hpp</a></li>
<li>resolution.cpp</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Oct 12 2015 12:16:50 for RaftLib by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
</body>
</html>
